

const $ = ele => document.querySelector(ele) ;


// options 表示想以对象的形式传参
const ajax = options => {

    // 解构
    const {
        type ,
        path , 
        data = {} ,
        dataType = 'json' ,
        successCB 
    } = options ;

    // 改变参数的形式
    let params = '' ;
    // 把对象改成字符串  ? 
    for(let key in data) {
        params += `${key}=${data[key]}&` ;
    }

    // 尾巴多了一个&
    params = params.substring(0 , params.length - 1) ;

    // 做请求
    const xhr = new XMLHttpRequest() ;

    // 分类型
    if(type.toLowerCase() === 'get') {
        xhr.open('get' , path + '?' + params , true) ;
        xhr.send() ;
    }
    else if(type.toLowerCase() === 'post') {
        xhr.open('post' , path, true) ;
        // 设置数据格式
        xhr.setRequestHeader('content-type' , 'application/x-www-form-urlencoded') ;
        xhr.send(params) ;
    }

    xhr.onreadystatechange = function () {  
        if(xhr.readyState === 4 && xhr.status === 200) {
            let res = xhr.responseText ;
            if(dataType.toLowerCase() === 'json') {
                res = JSON.parse(res)
            }
            successCB(res) ;
        }
    }
}

